A major component within a computer system is the central processing unit (processor). The processor includes the circuitry which controls the interpretation of computer instructions and their execution within the computer system. An operating system is also found within a computer system. The operating system is the software that controls the execution of computer programs and performs computer resource allocation and file management, among other tasks, within the computer system. Furthermore, operating systems are designed and built specifically around the type of processor and other supporting circuitry that are contained within the computer system.
Today, there exists many types of recognized operating systems for the computer market. One major type of operating system is the Apple Macintosh operating system (MacOS), for example, and another is the Microsoft Windows operating system (Windows OS). Each operating system is designed and configured to optimally perform on a specific type of processor. For example, the MacOS operates on an Apple PowerPC processor while the Windows OS operates on an Intel Pentium processor. It is well known within the computer industry that commercial computer software sold to the public is specifically developed to operate with a particular type of operating system. To offer greater software usage versatility within a single computer system, manufacturers have recently combined these two operating systems within a hybrid computer system platform.
Within the computer industry, there are prior art systems used to combine two or more operating systems within a hybrid computer system, but each system has disadvantages. The first prior art system used to combine two or more operating systems within one computer system designates one operating system as the "master" operating system while the other operating system is the "slave." The slave operating system runs within the master operating system which controls the slave operating system. For instance, the master operating system determines what resources (e.g., memory locations) will be allocated to itself and to the slave operating system. This first prior art system is shown in FIG. 1A.
With reference to FIG. 1A, prior art system 5 designates one operating system 100 as the master operating system while the other operating system 102 is the slave operating system. Other applications 122 and slave operating system 102 operate within master operating system 100. Master operating system 100 controls slave operating system 102 and also determines which resources slave operating system 102 is allowed to use. Slave operating system 102 is treated just as another application program. Master operating system 100 has complete access and control over physical memory unit 108, as represented by arrow 106. Controller 104 is a subcomponent of master operating system 100. Master operating system 100 uses controller 104 to restrict the access slave operating system 102 has to physical memory unit 108. Arrows 116-120 represent slave operating system 102 having access to separate blocks of memory 110-114 only through controller 104, which is controlled by master operating system 100.
The main disadvantage associated with prior art system 5 of FIG. 1A is that it requires modifications to be made to the software code of both operating systems so that they operate correctly together. For instance, the software code of master operating system 100 needs to be modified so that it can control slave operating system 102. This modification is required since slave operating system 102 is more complex than other applications 122 that run within master operating system 100. Furthermore, the software code of slave operating system 102 also needs to be modified because typically an operating system is not written or developed to be a slave program within another operating system.
Another disadvantage of prior art system 5 of FIG. 1A is that if only one processor is used to implement two operating systems, it results in slower operations because the single processor must perform emulation of the other operating system running within it. Therefore, it would be advantageous to provide a system that allows two or more operating systems to reside and operate within the same computer system and share the same physical memory unit without exhibiting the disadvantages associated with system 5. The present invention provides these advantages.
A second prior art system used to allow two or more operating systems to reside and operate within a hybrid computer system while sharing the same physical memory unit. This system specifically designates sections of the available physical memory to each operating system. One operating system is located at the base address (zero) of the address range within the physical memory, while the other operating system is located elsewhere within physical memory. This second prior art system is shown in FIG. 1B.
With reference to FIG. 1B, prior art system 7 designates sections of the available physical memory 136 of the computer to the two operating systems. Physical memory unit 136 is divided into lower address memory block 132 and upper address memory block 134. Operating system 126 only has direct access and control of upper address memory block 134 as represented by arrow 130. Operating system 124 only has direct access and control of lower address memory block 132 as represented by arrow 128. Lower address memory block 132 includes the base address location (zero) of physical memory unit 136.
One disadvantage associated with prior art system 7 of FIG. 1B is that it requires modification of the software code of all the operating systems not located at the base memory address location (zero) of physical memory unit 136. This modification is required because the standard default within the computer industry is to have the operating system use the base address (zero) as its reference point within the computer memory. In other words, an operating system that is off-the-shelf uses the base memory address as the beginning point within memory. Therefore, the complex software code of operating system 126 of FIG. 1B must be modified because it does not have access to lower address block memory 132, which contains the base address location of physical memory unit 136. The modification of operating system 126 would require changing the reference point from the base address location to the 256 megabyte (MB) address location which is the first address space within block memory 134. To make such a modification to the software code of operating system 126 is very difficult to perform because it requires extensive changes to all its code. Given this limitation, it would be advantageous to provide a system to allow two or more operating systems to run simultaneously on a computer while sharing the physical memory that does not require extensive modifications of the software code of the operating systems. The present invention provides this advantage.
A third prior art system used to allow two or more operating systems to run simultaneously on a hybrid computer system is to have separate respective physical memory units for each operating system located within the computer system. One way that this prior art system can be accomplished is by installing an operating system hardware board that interfaces with an expansion slot of a computer containing another type of operating system. FIG. 1C illustrates this third prior art system.
With reference to FIG. 1C, prior art system 9 has separate respective physical memory units for each operating system located within the hybrid computer system. Operating system 138 has direct access and control over physical memory unit 146 as represented by arrow 142. Furthermore, operating system 140 has direct access and control over physical memory unit 148 as represented by arrow 144. Physical memory unit 146 is separate and distinct from physical memory unit 148.
One disadvantage associated with prior art system 9 of FIG. 1C is that only a fraction of the total physical memory located within the hybrid computer system is actually used at any one time. This is because the computer system cannot use both of the separate physical memory units simultaneously. Therefore, much more physical memory (e.g., 2 GB) is consumed by prior art system 9 than is actually ever used in practice. Another disadvantage associated with prior art system 9 is that it is more expensive to fabricate because it requires more memory than would be needed if the operating systems were able to share the same physical memory unit. Another disadvantage is that prior art system 9 does not allow dynamic allocation of the memory between the operating systems. Yet, another disadvantage associated with prior art system 9 is that it requires modifying the physical implementation of the computer system to provide separate memory units. Therefore, it would be advantageous to provide a system that allows two or more operating systems to reside and operate within the same computer system and share the same physical memory unit without exhibiting the disadvantages associated with prior art system 9. The present invention provides these advantages.
Accordingly, the present invention provides a system and method for allowing two operating systems to share the same physical memory address space of a single computer system without requiring modifications to the software code of the operating systems. The present invention provides the above advantages within a computer system that employs two processors.